![[アップデート] Amazon CloudWatch SyntheticsでCanaryを削除する際に関連リソースも一緒に削除できるようになりました](https://devio2023-media.developers.io/wp-content/uploads/2019/05/amazon-cloudwatch.png)
[アップデート] Amazon CloudWatch SyntheticsでCanaryを削除する際に関連リソースも一緒に削除できるようになりました
気づいたらIAMロールとIAMポリシーの数がとんでもないことに
こんにちは、のんピ(@non____97)です。
皆さんは気づいたらIAMロールとIAMポリシーの数がとんでも無いことになっていたという経験はありますか? 私はあります。
AWSではIAMロールの指定が必要な際に新しいロールを作成
を選択できることがあります。こちらを選択すると、そのリソースの動作させるためのIAMロールと場合によってはIAMポリシー(インラインポリシー or カスタマー管理ポリシー)が作成されます。
この機能は非常に便利でよく使っているのですが、リソースを作成する度に使用すると、作成されたIAMロールとIAMポリシーの数がとんでもない数になりがちです。
マネージメントコンソールからだとIAMロールは複数個選択してまとめて削除できるのですが、IAMポリシーは複数個選択することはできずに、一個一個心を込めて削除する必要があります。
こういった理由から「リソースを削除するときに関連付くIAMロールやIAMポリシーも一緒に削除できたらなぁ」と思っていると、Amazon CloudWatch Syntheticsで、Canaryを削除する際に関連リソースも一緒に削除できるようになりました。
これは便利ですね。
早速試したので、紹介します。
いきなりまとめ
- Canaryと一緒に削除できるリソースは以下の5つ
- Lambda関数
- Lambda Layers
- CloudWatchアラーム
- IAMロール
- IAMポリシー
やってみた
Canaryの作成
まず、Canaryの作成からします。
今回はDevelopersIOのトップページの外形監視をするためのCanaryを作成します。
CloudWatchのコンソールからCloudWatch Synthetics
-Canaryを作成
をクリックします。
設計図はデフォルトのハートビートのモニタリング
のままです。テストするアプリケーションまたはエンドポイントURLにDevelopersIOのトップページのURL「https://dev.classmethod.jp/」を指定します。
1回実行すれば十分なのでスケジュールは1回実行
を選択します。
データ保持やデータストレージ、アクセス許可はデフォルトです。IAMロールは新しいロールを作成
を選択します。
CloudWatchアラーム、VPC設定、タグもデフォルトのままです。
何となくX-Rayで見てみたかったので、AWS X-Rayでサービスを追跡します。
にチェックを入れます。最後にCanaryを作成
をクリックします。
Canaryが作成されました。早速実行しているようですね。
しばらく待つと、Canaryの実行が完了しました。ステータスも成功となっていますね。
画面上部のサービスマップで表示
をクリックすると、X-Rayのサービスマップが表示されました。ロマンを感じます。
Canaryの削除
それでは本題のCanaryの削除です。
Canary作成時に一緒に作成されたリソースを確認すると、以下の6つのリソースがありました。
- アーティファクトの保存先のS3バケット
- ログの出力先のCloudWatch Logsロググループ
- CanaryのスクリプトであるLambda関数
- Lambda関数に関連付くLambda Layers
- Lambda関数に関連付くIAMロール
- IAMロールにアタッチされているIAMポリシー
Canaryを削除するためにアクション
-削除
をクリックします。
すると、一緒に削除するリソースを選択する画面が表示されました。
どうやら今回の場合は以下の4つのリソースが削除できそうですね。
- CanaryのスクリプトであるLambda関数
- Lambda関数に関連付くLambda Layers
- Lambda関数に関連付くIAMロール
- IAMロールにアタッチされているIAMポリシー
「削除する際は他のリソースにアタッチされているものを選択すると障害が発生するので注意が必要」と記載があります。
Review the canaries selected for deletion and choose any canary's associated resources to be deleted as well. Be careful, because if you choose to delete a CloudWatch alarm, a role, or a policy that is attached to another resource, it might cause failures. One example of this is if the canary’s alarm is used in a CloudWatch composite alarm.
機械翻訳結果は以下の通りです。
削除対象として選択したカナリアを確認し、カナリアの関連リソースも削除するものを選択します。他のリソースにアタッチされているCloudWatchアラーム、ロール、ポリシーの削除を選択した場合、障害が発生する可能性があるので注意が必要です。この例としては、カナリアのアラームがCloudWatchのコンポジットアラームで使われている場合です。
今回は作成していないですが、どうやらCloudWatchアラームも一緒に削除できるようですね。
今回は、チェックが外れているIAMロールとIAMポリシーにもチェックを入れて削除
をクリックします。
確認の画面が表示されました。Delete
と入力して確認
をクリックします。
すると、削除処理が進んでいき、最終的にCanary successfully deleted
と、選択した全てのリソースが削除されました。
実際に指定したリソースをコンソールから確認すると、確かに削除されていました。これは地味に便利。
他のサービスでも同等の機能が欲しくなった
Amazon CloudWatch SyntheticsでCanaryを削除する際に関連リソースも一緒に削除できるようになったアップデートを紹介しました。
実際触ってみると、これは思いのほか便利ということに気づきます。
EventBridgeルールやステートマシンなど他サービスにも同じような機能が提供されるとありがたいですね。私はフィードバックしておきました。
以上、AWS事業本部 コンサルティング部の のんピ(@non____97)でした!